The Human Side of Fuzzing: Challenges Faced by Developers During Fuzzing Activities

نویسندگان

چکیده

Fuzz testing, also known as fuzzing, is a software testing technique aimed at identifying vulnerabilities. In recent decades, fuzzing has gained increasing popularity in the research community. However, existing studies led by experts mainly focus on improving coverage and performance of techniques. That is, there still gap empirical knowledge regarding especially about challenges developers face when they adopt fuzzing. Understanding these can provide valuable insights to both practitioners researchers how further improve processes We conducted study understand encountered during More specifically, we first manually analyzed 829 randomly sampled fuzzing-related GitHub issues constructed taxonomy consisting 39 types (22 related process itself, 17 using external providers). then surveyed 106 verify validity our collected feedback be improved. Our taxonomy, accompanied with representative examples highlighted implications, serve reference point better techniques for practitioners, indicates potential directions work toward approaches practices.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

H-Fuzzing: A New Heuristic Method for Fuzzing Data Generation

How to efficiently reduce the fuzzing data scale while assuring high fuzzing veracity and vulnerability coverage is a pivotal issue in program fuzz test. This paper proposes a new heuristic method for fuzzing data generation named with H-Fuzzing. H-Fuzzing achieves a high program execution path coverage by retrieving the static information and dynamic property from the program. Our experiments ...

متن کامل

Deep Reinforcement Fuzzing

Fuzzing is the process of finding security vulnerabilities in input-processing code by repeatedly testing the code with modified inputs. In this paper, we formalize fuzzing as a reinforcement learning problem using the concept of Markov decision processes. This in turn allows us to apply state-of-theart deep Q-learning algorithms that optimize rewards, which we define from runtime properties of...

متن کامل

Directed Fuzzing Techniques

Beyond the more general fuzzing techniques that are, among others, used to generate tests with a certain amount of coverage, there exist techniques to direct fuzzers with the goal to execute specific program parts (recent changes, critical system calls, ...). A recent approach is described in [1]. The student is to examine the approach described in the given paper and compare it to similar exis...

متن کامل

0-knowledge fuzzing

Nowadays fuzzing is a pretty common technique used both by attackers and software developers. Currently known techniques usually involve knowing the protocol/format that needs to be fuzzed and having a basic understanding of how the user input is processed inside the binary. In the past since fuzzing was little-used obtaining good results with a small amount of effort was possible. Today findin...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

ژورنال

عنوان ژورنال: ACM Transactions on Software Engineering and Methodology

سال: 2023

ISSN: ['1049-331X', '1557-7392']

DOI: https://doi.org/10.1145/3611668